#pragma once

template <typename value_t, size_t size>
struct vec{
	
	vec(){ZeroMemory(data, sizeof(value_t)*size);}

	value_t& operator [](size_t index){ return data[index]; }

	const vec operator + (const vec& v)const{
		vec ret;
		for(UINT i = 0; i < size; i++) ret[i] = data[i] + v.data[i];
		return ret;
	}

	const vec operator - (const vec& v)const{
		vec ret;
		for(UINT i = 0; i < size; i++) ret[i] = data[i] - v.data[i];
		return ret;
	}

private:
	value_t data[size];
};